package com.example.cadmin.ExcelDao;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.cadmin.Application;
import com.example.cadmin.entity.Archives;
import com.example.cadmin.entityVo.withoutRFIDVo;
import com.example.cadmin.mapper.ArchivesMapper;
import com.example.cadmin.service.HostService;
import com.example.cadmin.utils.DateFormat;

import java.util.Date;

/**
 * 不带RDIF模板解析
 */
public class EmployeesListenerNoRFID extends AnalysisEventListener<withoutRFIDVo> {
    /**
     * 这个每一条数据解析都会来调用
     *
     * @param data
     * @param context
     */
    @Override
    public void invoke(withoutRFIDVo data, AnalysisContext context) {
        System.out.println("解析到一条数据:"+ JSON.toJSONString(data));
        // 静态方法注入bean解决方案
        ArchivesMapper archivesMapper = Application.ac.getBean(ArchivesMapper.class);
        Archives archivesDb = archivesMapper.selectOne(new QueryWrapper<Archives>().eq("file_name", data.getFileName()));
        if (archivesDb != null) {
            return;
        }
//        Host host = hostService.getOne(new QueryWrapper<Host>().eq("number", data.getNumber()));
//        if ("1".equals(host.getRfid())) {
//            Archives fileIdExists = archivesMapper.selectOne(new QueryWrapper<Archives>().eq("file_id", data.getFileId()));
//            if (fileIdExists != null) {
//                return;
//            }
//        }

//        if (StrUtil.isNotEmpty(data.getLayer()) || StrUtil.isNotEmpty(data.getColumn())) {
//            Archives positionExists = archivesMapper.selectOne(new QueryWrapper<Archives>().eq("current_layer", data.getLayer())
//                    .eq("current_column", data.getColumn()).eq("number", data.getNumber()));
//            if (positionExists != null) {
//                return;
//            }
//        }
        //保存本地
        if (StrUtil.isNotEmpty(data.getFileName()) && StrUtil.isNotEmpty(data.getNumber()) && StrUtil.isNotEmpty(data.getLayer())) {
            Archives archives = new Archives();
//            archives.setReference(data.getReference());
            archives.setFileName(data.getFileName());
//            archives.setFileNo(data.getFileNo());
            archives.setNumber(data.getNumber());
//            archives.setCurrentLayer(data.getLayer());
//            archives.setCurrentColumn(data.getColumn());
            archives.setEntryTime(DateFormat.getTime());
            archives.setStatus(0);
//            archives.setRetentionPeriod(0);
//            if (StrUtil.isNotEmpty(data.getYear())) {
//                archives.setYear(data.getYear());
//            } else {
//                Date date = DateUtil.date();
//                archives.setYear(Convert.toStr(DateUtil.year(date)));
//            }
            archives.setUserName("admin");
            archivesMapper.insert(archives);
        }


    }

    /**
     * 所有数据解析完成了 都会来调用
     *
     * @param context
     */
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {

    }


}

